// 基础过渡动画
.fade {
  &-enter-active,
  &-leave-active {
    transition: opacity 0.3s ease;
  }
  
  &-enter-from,
  &-leave-to {
    opacity: 0;
  }
}

// 滑动过渡
.slide {
  &-right {
    &-enter-active,
    &-leave-active {
      transition: all 0.3s ease-out;
    }
    
    &-enter-from {
      opacity: 0;
      transform: translateX(-30px);
    }
    
    &-leave-to {
      opacity: 0;
      transform: translateX(30px);
    }
  }
  
  &-up {
    &-enter-active,
    &-leave-active {
      transition: all 0.3s ease-out;
    }
    
    &-enter-from {
      opacity: 0;
      transform: translateY(30px);
    }
    
    &-leave-to {
      opacity: 0;
      transform: translateY(-30px);
    }
  }
}

// 缩放过渡
.zoom {
  &-enter-active,
  &-leave-active {
    transition: all 0.3s ease;
  }
  
  &-enter-from,
  &-leave-to {
    opacity: 0;
    transform: scale(0.9);
  }
}

// 弹跳动画
@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

.bounce {
  animation: bounce 1s ease infinite;
}

// 旋转动画
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.rotate {
  animation: rotate 2s linear infinite;
}

// 闪烁动画
@keyframes blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.blink {
  animation: blink 1s ease-in-out infinite;
}

// 波纹动画
@keyframes ripple {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(4);
    opacity: 0;
  }
}

.ripple {
  position: relative;
  overflow: hidden;
  
  &::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    transform: scale(0);
    animation: ripple 0.6s linear;
  }
}

// 儿童主题特殊动画
.kid-animation {
  // 摇摆动画
  @keyframes swing {
    0%, 100% {
      transform: rotate(0deg);
    }
    25% {
      transform: rotate(5deg);
    }
    75% {
      transform: rotate(-5deg);
    }
  }
  
  .swing {
    animation: swing 2s ease-in-out infinite;
    transform-origin: top center;
  }
  
  // 弹性动画
  @keyframes elastic {
    0% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.1);
    }
    100% {
      transform: scale(1);
    }
  }
  
  .elastic {
    animation: elastic 0.5s ease-in-out;
  }
  
  // 彩虹文字效果
  @keyframes rainbow {
    0% { color: #ff0000; }
    17% { color: #ff8000; }
    33% { color: #ffff00; }
    50% { color: #00ff00; }
    67% { color: #0000ff; }
    83% { color: #8000ff; }
    100% { color: #ff0000; }
  }
  
  .rainbow-text {
    animation: rainbow 4s linear infinite;
  }
} 